public class Test01 {
    /**
     * 暴力循环求解
     *
     * @param x
     * @param n
     * @return
     */
//    public double myPow(double x, int n) {
//        double ret = 1;
//        while (n != 0){
//            ret *= x;
//            n--;
//        }
//        return ret;
//    }

    public double myPow(double x, int n) {
        return n < 0 ? 1.0 / pow(x, -n) : pow(x, n);
    }

    public double pow(double x, int n) {
        if (n == 0) {
            return 1.0;
        }
        double tmp = pow(x, n / 2);
        if (n % 2 == 0) {
            return tmp * tmp;
        } else {
            return tmp * tmp * x;
        }
    }


    public static void main(String[] args) {

    }
}
